// WorldObject.h

// Sluzi ako zakladny objekt sveta s pristupom k celemu svetu
// Od neho su odvodene: Movable, ...

#ifndef WORLDOBJECT_H
#define WORLDOBJECT_H

// Zatial deklaracia sveta
class World;

// Vseobecny objekt sveta s pristupom k celemu svetu
class WorldObject
{

protected:
	// Pointer na svet, ktoremu patri tento objekt
	World* world;
public:
	// Konstruktor
	WorldObject(World* w) : world(w)
	{
	
	}
	// Kopirovaci konstruktor
	WorldObject(const WorldObject& wo) : world(wo.world)
	{
	
	}
	// Destruktor
	virtual ~WorldObject()
	{
	
	}
	// Operator priradenia
	virtual WorldObject& operator =(const WorldObject& wo)
	{ 
		world = wo.world; 
		return *this;
	}
	
	// METODY

	// Vrati pointer na svet, ktoremu patri tento objekt
	World* GetWorld() const
	{ 
		return world;
	}
	// Nastavi pointer na svet, ktoremu patri tento objekt
	void SetWorld(World* w)
	{ 
		world = w;
	}
};

#endif // WORLDOBJECT_H
